import { Inject, Controller, Post, Body } from '@midwayjs/decorator';
import { Context } from '@midwayjs/koa'
import { UserMiddleware } from '../middleware/user.middleware';
import { UserService } from '../service/user.service';
import { ApiBearerAuth } from '@midwayjs/swagger';
import { AddressDTO } from '../dto/address';
import { MapDTO } from '../dto/map';


/** 
 * 描述  在uer控制器写  有一个控制器 middleware: [UserMiddleware] 时刻判断是否有带token
 */
@ApiBearerAuth()  // swagger   表示 该控制器下的  所有请求都需要自带一个token
@Controller('/user', { middleware: [UserMiddleware] })
// @Controller('/user')
//    只有路由经过/user/**   都会触发这个中间件
export class APIController {
    @Inject()
    ctx: Context;


    @Inject()
    UserService: UserService;
    //  属性修饰器 

    @Post("/uploadoss")
    async uploadoss(){
        return this.UserService.getOss()
    }

    @Post("/deleteOss")
    async deleteOss(@Body() body: any){
        return this.UserService.deleteoss(body.host)
    }


    @Post("/friend")
    async friend(){
        return this.UserService.friend()
    }


    @Post("/updateuinfo")
    async updateuinfo(@Body() body: any){
        return this.UserService.updateavatar(body)
    }

    @Post('/commitOrder')
    async commitOrder(@Body() body: any) {
        //  微信手机


        return this.UserService.commitOrder(body)
    }
    @Post('/createOrder')
    async createOrder(@Body() body: any) {
        //  微信手机



        return this.UserService.createOrder(body)
    }


    @Post('/detailOrdert')
    async detailOrdert(@Body() body: any) {
        //  微信手机
        return this.UserService.getdetailOrder(body)
    }




 




    //   函数修饰器
    //  都需要判断有没有token  没有就打道回府
    @Post('/gettell')
    async updatatell(@Body() body: any) {
        //  微信手机


        return this.UserService.gettell(body.code)
    }


    @Post('/commitoder')
    async commitoder(@Body() body: any[]) {
        //  微信手机
        return this.UserService.commitoder(body)
    }


    @Post('/addaddress')
    async addaddress(@Body() body: AddressDTO) {
        //  添加收货地址
        return this.UserService.addaddress(body)
    }

    @Post('/getaddress')

    async getaddress(@Body() body: MapDTO) {
        //  添加收货地址'
        console.log(body);

        return this.UserService.getaddress(body)
    }
    @Post('/updataaddress')

    async updataaddress(@Body() body: AddressDTO) {
        //  添加收货地址'
        console.log(body);

        return this.UserService.updataaddress(body)
    }













    @Post('/updateavatar')
    //  微信的昵称 头像
    async updateavatar(@Body() body: { nickName: string, avatarUrl: string }) {


        return this.UserService.updateavatar(body)
    }


    @Post('/getfriends')
    //  微信的昵称 头像
    async getfriends() {


        return this.UserService.getfriends()
    }


    //  解析openid 
    // @Post("/topay")
    // async pay() {

    //     return this.UserService.pay({ price: 1, des: "卓标", openid: "o01r05CtNMAI4RxsY4FHu454xpWg" })

    // }



}